close all;clear all;clc; %关闭所有图形窗口,清除工作空间所有的变量,清除命令行
I1=imread('e:\role0\lena.jpg'); %读入图像
I2=I1(:); %将原始图像写成一维的数据并设为I2
I2length=length(I2); %计算I2的长度
I3=im2bw(I1,0.5); %将原图转换成二值图像阀值为0.5
%以下程序为对原图像进行行程编码,压缩
X=I3(:);
L=length(X);
j=1;
I4(1)=1;
for z=1:1:(length(X)-1) %行程编码程序段
if X(z)==X(z+1);
I4(j)=I4(j)+1;
else
data(j)=X(z); %d(j)代表相应的像素数据
j=j+1;
I4(j)=1;
end
end
data(j)=X(length(X)); %最后一个像素数据赋值给data
I4length=length(I4); %计算行程编码后的所占字节数,记为I4length
CR=I2length/I4length; %比较压缩前与压缩后的大小
%下面程序是行程编码解码
l=1;
for m=1:I4length
for n=1:1:I4(m)
decode_image1(l)=data(m);
l=l+1;
end
end
decode_image=reshape(decode_image1,512,512); %重建二位图像数组??
figure,
x=1:1:length(X);
subplot(131),plot(x,X(x)); %显示编码后的数据信息
y=1:1:I4length;
subplot(132),plot(y,I4(y)
行程编码解码.m
最新推荐文章于 2020-11-28 06:18:09 发布